package com.mc.clt.mapper;

import java.util.List;

import com.mc.clt.domain.CltInfo;
import com.mc.clt.domain.CltRank;
import com.mc.clt.domain.CltResult;
import com.mc.clt.domain.CltSpecies;

/**
 * 采记录Mapper接口
 *
 * @author mc
 * @date 2021-03-15
 */
public interface CltResultMapper
{
    /**
     * 查询采记录
     *
     * @param id 采记录ID
     * @return 采记录
     */
    public CltResult selectCltResultById(String id);

    /**
     * 查询采记录列表
     *
     * @param cltResult 采记录
     * @return 采记录集合
     */
    public List<CltResult> selectCltResultList(CltResult cltResult);

    /**
     * 新增采记录
     *
     * @param cltResult 采记录
     * @return 结果
     */
    public int insertCltResult(CltResult cltResult);

    /**
     * 修改采记录
     *
     * @param cltResult 采记录
     * @return 结果
     */
    public int updateCltResult(CltResult cltResult);

    /**
     * 删除采记录
     *
     * @param id 采记录ID
     * @return 结果
     */
    public int deleteCltResultById(String id);

    /**
     * 批量删除采记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCltResultByIds(String[] ids);

    /**
     * 实时展示最后num条采集记录
     * @param num
     * @return
     */
    public List<CltResult> selectRealTimeCltResultList(String num);

    /**
     * 根据时间查询采集记录
     * @param date
     * @return
     */
    public List<CltResult> selectCltResultListByLastDate(String date);

    /**
     * 实验室查询采集信息
     * @param cltInfo
     * @return
     */
    public List<CltResult> selectCltResultListByCltInfo(CltInfo cltInfo);
    /**
     * 根据采集编号查询
     * @param taskId
     * @return
     */
    public List<CltResult> selectCltResultByTaskId(String taskId);
    /**
     * 野外采集统计
     * @return
     */
    public int countCltResult(String type);

    /**
     * 野外采集统计
     * @return
     */
    public int countAllCltResult(CltInfo cltInfo);

    /**
     * 野外采集种类统计
     * @return
     */
    public int countCltFamily();

    /**
     * 野外采集排名统计
     * @return
     */
    public List<CltRank> countCltRank(String name);

    /**
     * 野外种类列表
     * @return
     */
    public List<CltSpecies> countCltSpecies(String name);

    /**
     * 野外采集标本统计
     * @return
     */
    public int countAllCltSpecimenResult(CltInfo cltInfo);


}